package controlador;

import java.util.Vector;

import persistencia.AdmPersIncidente;
import persistencia.AdmPersTecnico;

import modelo.Incidente;
import modelo.Tecnico;

public class Sistema {
	public Vector<Tecnico> tecnicos;
	public Vector<Incidente> incidentes;
	public static Sistema instancia;
	
	public static Sistema getInstancia(){
		if(instancia==null)
			instancia = new Sistema();
		return instancia;
	}
	
	public Sistema(){
		tecnicos = new Vector<Tecnico>();
		incidentes = new Vector<Incidente>();
	}
	
	public void crearTecnico(String dni, String nombre){
		Tecnico tecnico = buscarTecnico(dni);
		if(tecnico==null){
			tecnico = new Tecnico(dni, nombre);
			AdmPersTecnico.getInstancia().insertTecnico(dni, nombre); 
		}
	}
	
	public Tecnico buscarTecnico(String dni){
		for(int i = 0; i<tecnicos.size();i++){
			if (tecnicos.elementAt(i).getDni().equals(dni))
				return tecnicos.elementAt(i);
		}
		return AdmPersTecnico.getInstancia().selectTecnico(dni);
				
	}
	
	public void crearIncidente (int numero, String dni, String estado){
		Incidente incidente = buscarIncidente(numero);
		if(incidente==null){
			Tecnico tecnico = buscarTecnico(dni);
			incidente = new Incidente(estado, numero, tecnico);
			AdmPersIncidente.getInstancia().insertIncidente(numero, dni, estado);
		}
	}

	public Incidente buscarIncidente(int numero) {
		for(int i = 0; i<incidentes.size();i++){
			if (incidentes.elementAt(i).getNumero()==numero)
				return incidentes.elementAt(i);
		}
		return AdmPersIncidente.getInstancia().selectIncidente(numero);
	}
	
	public String consIncidente(int numero){
		String datos = null;
		Incidente incidente = buscarIncidente(numero);
		datos = incidente.mostrar();
		if (datos!=null)
			return datos;
		return AdmPersIncidente.getInstancia().mostrarIncidente(numero);
	}
	
}
